Find the highest 3 valuesΒΆ
heapq.nlargest(3, D, key=D.get)
Find the highest 3 values in a dictionary.
def get_3_largest_heapq(D):
from heapq import nlargest
three_largest = nlargest(3, D, key = D.get)
return three_largest
def get_3_largest_list(D):
L = list(sorted(D.values(), reverse=True)) # [5874, 5874, 560, 500, 400, 20]
return L[:3]
def get_3_largest_simple(D):
L = [x for x in D.values()] # [500, 5874, 560, 400, 5874, 20]
L.sort() # [20, 400, 500, 560, 5874, 5874]
return L[-3:]
def get_3_largest_sortlist(D):
N = sorted(list(D.values()))[3:] # ['e', 'c', 'b']
L = [i for i in D.keys() if D[i] in N][::-1]
return L
Test:
D = {'a': 500,
'b': 5874,
'c': 560,
'd': 400,
'e': 5874,
'f': 20
}
print(get_3_largest_heapq(D)) # ['b', 'e', 'c']
print(get_3_largest_list(D)) # [5874, 5874, 560]
print(get_3_largest_simple(D)) # [560, 5874, 5874]
print(get_3_largest_sortlist(D)) # ['e', 'c', 'b']
Output:
['b', 'e', 'c']
[5874, 5874, 560]
[560, 5874, 5874]
['e', 'c', 'b']